草庐IT

Lua 垃圾回收

全部标签

javascript - 如何释放和垃圾收集 WebGL 上下文?

我正在为Web和移动设备开发WebGL应用程序。我经常使用硬刷新来测试我的WebGL实现的结果。View尝试后,出现错误:Error:WebGL:Exceeded16liveWebGLcontextsforthisprincipal,losingtheleastrecentlyusedone.这不会出现在新启动的浏览器上,而是在多次刷新网站后出现。我猜WebGL上下文没有正确完成、释放、销毁、清理、释放。我该怎么做?KhronosGroup在此处创建了一个用于释放和垃圾收集WebGL上下文的测试套件:https://www.khronos.org/registry/webgl/sdk/

javascript - 分配一个新的字符串值会产生需要收集的垃圾吗?

考虑这个javascript代码:vars="Somestring";s="Morestring";垃圾收集器(GC)在这种操作之后是否还有工作要做?(我想知道在尝试最小化GC暂停时是否应该担心分配字符串文字。)e:让我觉得有点好笑的是,虽然我在问题中明确指出我需要尽量减少GC,但每个人都认为我错了。如果真的必须知道特定的细节:我有一个javascript游戏——它在Chrome中运行良好,但在Firefox中有半频繁的暂停,这似乎是由于GC。(我什至检查过Firefox的MemChaser扩展,暂停与垃圾收集完全一致。) 最佳答案

javascript - Node.js 的垃圾收集器

我从这个线程中学到了garbagecollectionwithnode.jsnode.js使用分代GC。我经常使用循环对象引用(我删除/确保最终超出范围)并且想知道node.js是否能很好地处理它们。所以例如。如果它是使用ref完成的。计数,会有问题,所以我想知道Node在这方面有多好。一些使用场景:对于每个http请求,我都创建了一个带有lambda的setTimeout,它可能引用了范围对象。scope对象也有对timeout对象的引用等...对于每个用户session,我都有一个指向http请求对象的指针(仍在进行C编程)引用,它也引用了session对象等...请求对象经常被删

javascript - 如何在 Javascript 中收集匿名对象垃圾?

如果我创建了一个对象但没有将它赋值给任何东西,Javascript什么时候会垃圾回收这个对象?这是一个例子:alert(newDate().getTime());如果不进行这样的垃圾回收,会不会造成内存泄漏?for(vari=0;i 最佳答案 如果作用域内没有人引用匿名对象,则下次GC运行时将对它们进行垃圾回收。因此,在Console.info完成运行后,它们就可以进行垃圾收集了。如果您设置任何范围内的变量来引用它们,那么它们就不会。 关于javascript-如何在Javascript

javascript - QML 垃圾收集删除仍在使用的对象

我曾多次遇到过这个问题,对象是动态创建的,无论它们是用QML还是C++创建的。对象在仍在使用时被删除,导致无缘无故的硬崩溃。这些对象一直被引用并成为其他对象的父对象,一直到根对象,所以我发现QML在它们的引用计数仍然高于零时删除这些对象很奇怪。到目前为止,我找到的唯一解决方案是在C++中创建对象并将所有权显式设置为CPP,从而无法从QML中删除对象。起初我认为这可能是育儿问题,因为我使用的是QObject派生类,动态实例化的QML方法传递一个Item对于parent,而QtObject甚至不带有父属性-它没有从QObject公开.但后来我尝试使用Qobject派生它公开并使用育儿,最后

javascript - 浏览器刷新不进行垃圾回收

我在所有经过测试的浏览器上都发现了这一点——Windows上的IE、Firefox、Chrome和Safari以及Apple上的Safari。据称,浏览器刷新、后退按钮或前进链接应该转储浏览器节点和javascript变量和对象等。WebGL似乎不是这种情况。我第一次注意到它是在开发一个需要大约100MB到200MB内存的复杂WebGL应用程序时。在开发过程中,我必须进行大量刷新,而我的计算机会在5-10次刷新后开始变慢并死机。经过一些研究,我意识到这不应该。内存泄漏的公认解决方案是刷新页面,这应该释放所有javascript对象和变量以及dom节点。但是看看下面的图片:那么这里有什么

javascript - V8 不会清理所有垃圾

我在清理V8中的垃圾时遇到问题。首先,我的Javascript如下:varbigstring="ASD";for(varb=0;b在C++中,我正在运行一个循环:调用框架。收集垃圾:while(!V8::IdleNotification()){};预期的结果是每次迭代都会收集junkArray垃圾。毕竟,IdleNotification仅在“V8已完成尽可能多的清理工作”时才返回true(doc).事实上,垃圾只被清理*大约。每100次迭代。我错过了一步吗?junkArray由于某种原因不是frame之后的垃圾吗?*通过比较前后堆使用情况确定 最佳答案

javascript - Chrome 的 javascript 垃圾收集工作方式是否不同?

这个问题在这里已经有了答案:Aboutclosure,LexicalEnvironmentandGC(3个答案)关闭9年前。当我尝试调试此代码时(http://jsfiddle.net/QWFGN/)varfoo=(function(numb){return{bar:function(){debugger;return"something";}}})(1);foo.bar()Chrome中的开发者工具的行为不同于Firefox中的Firebug和IE中的开发者工具。问题是变量numb在Chrome开发者工具中不可见在debugger;行。但是,它在Firebug和IE中是可见的。如果我

以最少的分配进行垃圾收集器开销?

人们普遍认为,垃圾回收器是阻碍Go从C++级别性能回归的主要因素之一。我想获得一些直觉来帮助推理Go的GC在不同情况下的开销。例如,如果一个程序从不接触堆,或者只是在设置时分配一个大块用作具有self管理的对象池,是否会有重要的GC开销?是每x秒调用一次GC,还是在每次分配时调用一次?作为一个相关问题:我最初的假设是否正确,即Go的GC是C++级别性能的主要障碍,或者Go是否有一些事情做得更慢? 最佳答案 Golang中垃圾收集的暂停时间(停止世界)大约为几毫秒,或者在最近的Golang中更短。(看https://github.co

Go vs Rust 垃圾收集器性能和类型

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestion我阅读了一些关于Go的GC的堆栈溢出信息。Go垃圾收集器中的栈和堆模型我想知道如果一个变量需要在Go中定义在堆或栈中,然后GC要收集它,使用什么算法?如果我们假设在具有GC的语言中,堆更高效,那么Rust又如何?与Go相比,Rust如何处理这个问题?特别是关于Go中的引用计数器,我们在大多数时候别无选择地询问编译器,但这样的工具存在并且它以自己的方式完成它的工作!我读过这个:Stackvsheap